/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package AmbientNetwork;

import java.util.*;

/**
 * A program belépési pontja.
 * @author D-Torus-Team
 */
public class Main {

    /**
     * Jelenleg a main-ben a teszteléshez létrehozunk 3 peer-t, akiknek megadunk valami szomszédsági viszonyt, és policy-t.
     * Ezekkel fogunk tesztelni.
     * @param args the command line arguments, egyelőre nincs, de majd így lesz a bemeneti fájl beolvasva
     */
    public static void main(String[] args) {
        // TODO code application logic here

        List<Node> mlist = new ArrayList<Node>();
        List<Node> lista = new ArrayList<Node>();
        List<Node> listb = new ArrayList<Node>();
        List<Node> listc = new ArrayList<Node>();
        List<Node> listd = new ArrayList<Node>();
        List<Node> liste = new ArrayList<Node>();
        
        Policy pa = new Policy(12, 20);
        Peer a = new Peer(1, pa, lista);

        Policy pb = new Policy(20, 10);
        Peer b = new Peer(2, pb, listb);

        Policy pc = new Policy(10, 5);
        Peer c = new Peer(3, pc, listc);

//        Policy pd = new Policy(33, 44);
//        Peer d = new Peer(4, pd, listd);


        Policy pe = new Policy(8, 10);
        Peer e = new Peer(5, pe, liste);

        lista.add(b);
        lista.add(c);
      //  lista.add(d);
        lista.add(e);

        listb.add(a);
        listb.add(c);
   //     listb.add(d);
        listb.add(e);

        listc.add(a);
        listc.add(b);
  //      listc.add(d);
        listc.add(e);
        
        listd.add(a);
        listd.add(b);
        listd.add(c);
        listd.add(e);

        liste.add(a);
        liste.add(b);
        liste.add(c);
  //      liste.add(d);



        mlist.add(a);
        mlist.add(b);
        mlist.add(c);
   //     mlist.add(d);
        mlist.add(e);

        FullNetwork fn = new FullNetwork(mlist); //Végülis azért kell példányosítani a FullNetworkot, mert így egyszerűbb átadni egy members listát
        Output.printFullMembersList(Output.makeIterator(fn));
        fn.simulate(); // Elindítja a szimulációt
        Output.printFullMembersList(Output.makeIterator(fn));
        

    }
}
